/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.openide.explorer.propertysheet; import java.beans.*; import java.awt.Dimension; import javax.swing.*; import org.openide.nodes.Node; import org.openide.explorer.*; /** An Explorer view displaying a property sheet. * @see PropertySheet * @author Jan Jancura, Jaroslav Tulach, Ian Formanek */ public class PropertySheetView extends PropertySheet { /** generated Serialized Version UID */ static final long serialVersionUID = -7568245745904766160L; /** helper flag for avoiding multiple initialization of the GUI */ transient private boolean guiInitialized = false; /** The Listener that tracks changes in explorerManager */ transient private PropertyIL managerListener; /** manager to use */ transient private ExplorerManager explorerManager; /** Initializes the GUI of the view */ private void initializeGUI() { guiInitialized = true; setBorder (new javax.swing.border.EtchedBorder()); managerListener = new PropertyIL(); } /* Initializes the sheet. */ public void addNotify () { super.addNotify (); explorerManager = ExplorerManager.find (this); if (!guiInitialized) initializeGUI(); // add propertyChange listeners to the explorerManager explorerManager.addPropertyChangeListener(managerListener); setNodes (explorerManager.getSelectedNodes ()); } /* Deinitializes the sheet. */ public void removeNotify () { super.removeNotify (); if (explorerManager != null) { //[PENDING] patch for bug in JDK1.3 Window // (doublecall destroy()&removeNotify() for // destroyed, but no garbagecollected windows explorerManager.removePropertyChangeListener(managerListener); explorerManager = null; setNodes (new Node[0]); } } /* Changes preferred size */ public Dimension getPreferredSize () { return new Dimension (200, 300); } // INNER CLASSES *************************************************************************** /** * The inner adaptor class for listening to the ExplorerManager's property and * vetoable changes. */ class PropertyIL implements PropertyChangeListener { public void propertyChange (PropertyChangeEvent evt) { if (ExplorerManager.PROP_SELECTED_NODES.equals (evt.getPropertyName ())) { setNodes ((Node []) evt.getNewValue ()); } } } } /* * Log * 5 Gandalf 1.4 2/17/00 Jan Jancura Last minute change: * patch for bug in JDK1.3 (removeNotify() called twice) * 4 Gandalf 1.3 10/22/99 Ian Formanek NO SEMANTIC CHANGE - Sun * Microsystems Copyright in File Comment * 3 Gandalf 1.2 6/8/99 Ian Formanek ---- Package Change To * org.openide ---- * 2 Gandalf 1.1 3/20/99 Jesse Glick [JavaDoc] * 1 Gandalf 1.0 1/5/99 Ian Formanek * $ * Beta Change History: * 0 Tuborg 0.27 --/--/98 Jan Formanek removed initializingEM variable * 0 Tuborg 0.30 --/--/98 Jan Formanek reflecting changes in explorer model * 0 Tuborg 0.31 --/--/98 Jan Formanek border around PropertySheet * 0 Tuborg 0.32 --/--/98 Jan Formanek reflecting changes in ExplorerView */